package com.titaniume.rqbbitmq.seven;

import com.rabbitmq.client.BuiltinExchangeType;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.DeliverCallback;
import com.titaniume.rqbbitmq.util.RabbitMqUtils;

/**
 * @program: rqbbitmq-hello
 * @description: topic主题模式 消费者C1
 * @author: titaniume
 * @create: 2021-12-22 14:39
 */
public class ReceiveLogsTopic01 {

    public static final String EXCHANGE_NAME ="topic_logs";

    public static void main(String[] args) throws Exception{

        Channel channel = RabbitMqUtils.getChannel();
        //声明交换机
        channel.exchangeDeclare(EXCHANGE_NAME, BuiltinExchangeType.TOPIC);
        //声明队列
        String queueName ="Q1";
        channel.queueDeclare(queueName,false,false,false,null);
        channel.queueBind(queueName,EXCHANGE_NAME,"*.orange.*");
        System.out.println("等待接收消息...");
        //接收消息
        DeliverCallback deliverCallback = (consumerTag,message)->{
            String msg = new String(message.getBody(), "UTF-8");
            System.out.println("接收队列:" + queueName +",绑定键:" + message.getEnvelope().getRoutingKey() +",消息:" + msg);
        };
        channel.basicConsume(queueName,true,deliverCallback,consumerTag->{});
    }
}